// #include <iostream>
// #include <string>
// using namespace std;
// int main()
// {
//     int count=0;
//     string str;
//     cin>>str;
//     for(int i=0;i<str.size();i++)
//     {
//         if(str[i]>='0'&&str[i]<='9')
//         {
//             count+='A'-str[i];
//         }
//         if(str[i]>='a'&&str[i]<='z')
//         {
//             count+=str[i]-'Z';
//         }
//     }
//     cout<<count<<endl;
//     return 0;
// }
//3-A 51-65 14
//k-Z 107-90 17
//y-Z 121-90 31
//0-A 65-48 17
//u-Z 117-90 27

// #include <iostream>
// using namespace std;
// int main()
// {
//     int n,s=0;
//     cin>>n;
//     while(n)s=s*10+n%10,n=n/10;
//     cout<<s;
//     return 0;
// }

// #include <iostream>
// #include <string>
// #include <vector>
// #include <iomanip>
// using namespace std;
// class Graphic
// {
// public:
//     virtual void show() const=0;
// };
// class Shape:public Graphic
// {
// public:
//     virtual double area() const=0;
// };
// class Solid:public Graphic
// {
// public:
//     virtual double area() const=0;
//     virtual double volume() const=0;
// };
// class Square:public Shape
// {
// protected:
//     int side;
// public:
//     Square(int side_):side(side_){
//     }
//     double area()const
//     {
//         return side*side;
//     }
//     void show()const
//     {
//         cout<<"Square, side:"<<side<<", area:"<<Square::area()<<"."<<endl;
//     }
// };
// class Circle:public Shape
// {
// protected:
//     int r;
// public:
//     Circle(int r_):r(r_){}
//     double area()const
//     {
//         return 3.14*r*r;
//     }
//     void show()const
//     {
//         cout<<"Circle, radius:"<<r<<", area:"<<Circle::area()<<"."<<endl;
//     }
// };
// class Ball:public Solid
// {
// protected:
//     int radius;
// public:
//     Ball(int a):radius(a){}
//     double area()const
//     {
//         return 4*3.14*radius*radius;
//     }
//     double volume()const
//     {
//         return (4/3)*3.14*radius*radius*radius;
//     }
//     void show()const
//     {
//         cout<<"Ball, radius:"<<radius<<", area:"<<Ball::area()<<", volume:"<<Ball::volume()<<"."<<endl;
//     }
// };
// class Cube:public Solid
// {
// protected:
//     int x;
// public:
//     Cube(int x_):x(x_){}
//     double area()const
//     {
//         return 6*x*x;
//     }
//     double volume()const
//     {
//         return x*x*x;
//     }
//     void show()const
//     {
//         cout<<"Cube, side:"<<x<<", area:"<<Cube::area()<<", volume:"<<Cube::volume()<<"."<<endl;
//     }
// };
// int main()
// {
//     Graphic *gp[100];
//     int cases;
//     cin>>cases;
//     for(int i = 0; i < cases; ++i)
//     {
//         string types;
//         double value;
//         cin>>types>>value;
//         if(types == "square")
//             gp[i] = new Square(value);
//         if(types == "cube")
//             gp[i] = new Cube(value);
//         if(types == "ball")
//             gp[i] = new Ball(value);
//         if(types == "circle")
//             gp[i] = new Circle(value);
//     }
//     for(int i = 0; i < cases; ++i)
//     {
//         gp[i]->show();
//         delete gp[i];
//     }
// }


// #include <iostream>
// #include <string>
// #include <vector>
// #include <iomanip>
// using namespace std;
// class Vechicle
// {
// public:
//     int speed;
//     static int numOfVechicles;
// public:
//     Vechicle(int s):speed(s){numOfVechicles++;}
//     static int getNumOfVechicles()
//     {
//         return numOfVechicles;
//     }
//     virtual~Vechicle()
//     {
//         cout<<"A vechicle is deleted."<<endl;
//     }
//     virtual void show()const=0;
// };
// int Vechicle::numOfVechicles=0;
// class Bike:public Vechicle
// {
// public:
//     Bike(int b):Vechicle(b){}
//     void show()const
//     {
//         cout<<"A bike's speed is "<<Vechicle::speed<<"km/h."<<endl;
//     }
//     ~Bike()
//     {
//         cout<<"A bike is deleted."<<endl;
//     }
// };
// class MotoBike:public Vechicle
// {
// public:
//     MotoBike(int m):Vechicle(m){}
//     void show()const
//     {
//         cout<<"A motobike's speed is "<<Vechicle::speed<<"km/h."<<endl;
//     }
//     ~MotoBike()
//     {
//         cout<<"A motobike is deleted."<<endl;
//     }
// };
// class Car:public Vechicle
// {
// public:
//     Car(int c):Vechicle(c){}
//     void show()const
//     {
//         cout<<"A car's speed is "<<Vechicle::speed<<"km/h."<<endl;
//     }
//     ~Car()
//     {
//         cout<<"A car is deleted."<<endl;
//     }
// };
// class Person
// {
// protected:
//     string name;
// public:
// Person(string name_):name(name_){}
//     void drive(Vechicle&v)
//     {
//         cout<<name<<" drives. ",v.show();
//     }
// };
// int main()
// {
//     int cases, n;
//     char c;
//     string name;
//     Vechicle* vechicle;
//     cout<<"In beginning, we have "<<Vechicle::getNumOfVechicles()<<" vechicles."<<endl;
//     cin>>cases;
//     for (int i = 0; i < cases; i++)
//     {
//         cin>>name>>c>>n;
//         Person person(name);
//         switch (c)
//         {
//         case 'B':
//             vechicle = new Bike(n);
//             break;
//         case 'M':
//             vechicle = new MotoBike(n);
//             break;
//         case 'C':
//             vechicle = new Car(n);
//             break;
//         }
//         person.drive(*vechicle);
//         delete vechicle;
//     }
//     cout<<"At the end, we have "<<Vechicle::getNumOfVechicles()<<" vechicles."<<endl;
//     return 0;
// }
// #include <iostream>
// #include <string>
// #include <vector>
// #include <iomanip>
// using namespace std;
// class FlyThing
// {
// protected:
//     string name;
//     int x;
//     int y;
// public:
//     FlyThing(string name_,int x_,int y_):name(name_),x(x_),y(y_)
//     {
//     }
//     virtual void fly()const=0;
//     void show()
//     {
//         cout<<name<<" at "<<x<<" "<<y<<endl;
//     }
// };
// class EnemyPlane:public FlyThing
// {
// public:
//     EnemyPlane(string n,int xx,int yy):FlyThing(n,xx,yy){}
//     void fly()
//     {
//         ++y;
//     }
// };
// class MyPlane:public FlyThing
// {
// public:
//     MyPlane(string nn,int xxx,int yyy):FlyThing(nn,xxx,yyy){}
//     void fly()
//     {
//         char ch;
//         cin>>ch;
//         if(ch=='A'||ch=='a')
//         {
//             --x;
//         }
//         if(ch=='S'||ch=='s')
//         {
//             ++y;
//         }
//         if(ch=='W'||ch=='w')
//         {
//             --y;
//         }
//         if(ch=='D'||ch=='d')
//         {
//             ++x;
//         }
//     }
// };

// int main()
// {
//     FlyThing **planes;
//     int numOfEnemplanes, i, x, y, numOfMoves, j;
//     string str;
//     cin>>numOfEnemplanes;
//     planes = new FlyThing*[numOfEnemplanes + 1];
//     planes[0] = new MyPlane("WUDI", 50, 50);
//     for(i = 1; i <= numOfEnemplanes; i++)
//     {
//         cin>>str>>x>>y;
//         planes[i] = new EnemyPlane(str, x, y);
//     }

//     for (j = 0; j < numOfEnemplanes + 1; j++)
//     {
//         planes[j]->show();
//     }

//     cin>>numOfMoves;
//     for (i = 0; i < numOfMoves; i++)
//     {
//         for (j = 0; j < numOfEnemplanes + 1; j++)
//         {
//             planes[j]->fly();
//             planes[j]->show();
//         }
//     }
//     return 0;
// }
#include <iostream>
#include <string>
using namespace std;

#include <cstdlib>
int gcd(int a, int b) {
    while (b != 0) {
        int temp = b;
        b = a % b;
        a = temp;
    }
    return a;
}
class Fract
{
private:
    int x;
    int y;
public:
    Fract(int xx, int yy)
    {
        int c = gcd(abs(xx), abs(yy));
        x = xx / c;
        y = yy / c;
        if (y < 0)
        {
            y = -y;
            x = -x;
        }
    }
    void show()
    {
        if (x == 0)cout << 0 << endl;
        else if (y == 1)cout << x << endl;
        else cout << x << "/" << y << endl;
    }
};
int main()
{
    int n, m;
    while (cin >> n >> m)
    {
        Fract fr(n, m);
        fr.show();
    }
}